// 云函数入口文件
const cloud = require('wx-server-sdk')
// const DEFAULT_APPID = "wx9a7913e0c090dc4b";
const DEFAULT_BUCKET = "p-1301301505";
cloud.init({
  env: cloud.DYNAMIC_CURRENT_ENV,
  throwOnNotFound: false
})
const db = cloud.database();
const _ = db.command;
const COS = require('cos-nodejs-sdk-v5');
const got = require('got');

const Region = 'ap-chongqing';

// buildQr = async (id) => {
//   // const cos = new COS({
//   //   SecretId: 'AKIDlJa3GZNOedS0HJJYlUxrVtjJfkhOM0uN',
//   //   SecretKey: 'Xp0bLq4JK4h5DEBsTpwtc6SaRImAHL9i',
//   // });
//   const appid = "wx53f453674085a5ce";
//   const secret = "346b6f46c964a24b6498e6784aff0d04";
//   const url = `https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=${appid}&secret=${secret}`;
//   let token = (await got(url, { responseType: 'json' })).body;
//   let buffer = await got.post(`https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=${token.access_token}`, {
//     body: `{"scene":"${id}", "width":400}`,
//     responseType: 'buffer',
//     resolveBodyOnly: true
//   });
//   console.log("isBuffer", url, Buffer.isBuffer(buffer), buffer.length);
//   if (buffer.length < 1000) {
//     let str = buffer.toString()
//     console.log(str);
//     return str;
//   }

//   return new Promise((resolve, reject) => {

//     // cos.putObject({
//     //   Bucket: DEFAULT_BUCKET, /* 必须 */
//     //   Region: Region,    /* 必须 */
//     //   Key: `${id}/qr.jpg`,              /* 必须 */
//     //   StorageClass: 'STANDARD',
//     //   Body: buffer, //fs.createReadStream(`/tmp/${id}.jpg`), // 上传文件对象
//     //   onProgress: function(progressData) {
//     //     let json = JSON.stringify(progressData)
//     //     console.log(json);
//     //    }
//     // },  function(err, data) {
//     //   console.log("put object")
//     //   console.log(err || data);
//     //   if (err){
//     //     reject(err)
//     //   }else{
//     //     resolve(data)
//     //   }
//     // });
//   })
// }

// 云函数入口函数
exports.main = async (event, context) => {
  //await buildQr(event.id);
  //return `https://${DEFAULT_BUCKET}.file.myqcloud.com/${event.id}/qr.jpg`;
  try {
    const result = await cloud.openapi.wxacode.getUnlimited({
      "page": 'pages/admin/index/index',
      "scene": `id=${event.id}`
    })
    await cloud.uploadFile({
      cloudPath: 'userAsset/' + event.id + '/qr.jpg', //这里如果可以重复就用openId，如果不可能重复就用 
      fileContent: result.buffer, //处理buffer 二进制数据
      success: res => {
        // 文件地址
        console.log(res.fileID)
        return res.fileID

      },
      fail: err => {
        console.log(err)
      }
    })


  } catch (err) {
    return err
  }

}